package com.lifeverse.factory.type;

import com.lifeverse.entity.LifeEntity;

import java.util.Map;

/**
 * 生命体创建器接口
 * 定义不同类型生命体创建器的通用方法
 */
public interface LifeEntityCreator {
    
    /**
     * 创建生命体
     * 
     * @param name 生命体名称
     * @param description 生命体描述
     * @param configuration 配置参数
     * @return 创建的生命体实例
     */
    LifeEntity create(String name, String description, Map<String, Object> configuration);
    
    /**
     * 克隆生命体
     * 
     * @param originalEntity 原始生命体
     * @param newName 新生命体名称
     * @param variationLevel 变异程度（0.0-1.0）
     * @return 克隆的生命体实例
     */
    LifeEntity clone(LifeEntity originalEntity, String newName, double variationLevel);
    
    /**
     * 验证配置参数
     * 
     * @param configuration 配置参数
     * @return 是否有效
     */
    boolean validateConfiguration(Map<String, Object> configuration);
    
    /**
     * 获取默认配置
     * 
     * @return 默认配置参数
     */
    Map<String, Object> getDefaultConfiguration();
}